package com.plian.system.service.im;

import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.fill.FillConfig;
import com.plian.system.dto.im.MainProjectSituationDTO;
import com.plian.system.entity.im.MainProjectSituation;
import com.plian.system.mybatis.base.BaseService;
import com.plian.system.vo.report.ReportReturnVO;

import java.util.List;

/**
 * 服务类
 *
 * @author
 * @since 2019-09-27
 */
public interface IMainProjectSituationService extends BaseService<MainProjectSituation> {

    /**
     * 重点项目完成情况汇总(按项目类别分类）
     * @param mainProjectSituationDTO
     * @return
     */
    ReportReturnVO statisticsByNature(MainProjectSituationDTO mainProjectSituationDTO);

    /**
     * 重点项目完成情况汇总(按企业分类）
     * @param mainProjectSituationDTO
     * @return
     */
    ReportReturnVO statisticsByUnit(MainProjectSituationDTO mainProjectSituationDTO);

    /**
     * 月报表 sheet页 二、重点项目情况 数据写入
     * @param mainProjectSituations
     * @param excelWriter
     * @param writeSheet
     * @param fillConfig
     */
    void write(List<MainProjectSituation> mainProjectSituations, ExcelWriter excelWriter, WriteSheet writeSheet, FillConfig fillConfig);

    /**
     * 根据主表删除
     * @param ids
     * @return
     */
    boolean deleteByParentId(List<Long> ids);

    /**
     * 重大项目考核明细表-统计用（   月度）
     * @param mainProjectSituationDTO
     * @return
     */
    ReportReturnVO summaryDetail(MainProjectSituationDTO mainProjectSituationDTO);
}
